iT邦幫忙

DAY 17
3

實戰 Java SE 7 系列 第 17

復習 - 泛型(Generic) 完

  • 分享至 

  • xImage
  •  

上一篇文章,我們復習了泛型最基本的應用 - Collection 類別的型別指定。除此之外,泛型還能用在其它的地方。
例如我們宣告了一個常數類別 Constant:

package idv.jacky.ironman4.day17;

public class Constant<T> {
 private T t;
 
 public Constant(T t) {
 this.t = t;
 }
}

你可以看到熟悉地角刮號,但這次是出現在類別宣告的類別名稱後方。我們不指定特定的型別給它,所以用個 T 代替。然後我們有個 private 的變數,是個 T 型別的 t,在 Constant 建構子裡,傳入了一個 t ,指定給 Constant 類別自己的 t。

有聽沒有懂?我們來看看使用的例子:

package idv.jacky.ironman4.day17;

public class Day17Example {
 
 public static void main(String[] args) {
 Constant<Integer> life = new Constant<>(42);
 Constant<Double> pi = new Constant<>(3.14);
 }
}

程式的第6行,我們宣告了一個 Constant 物件,名叫 life,然後指定它為 Integer 型別,並設定它的值為 42

程式的第7行,我們宣告了另一個 Constant物件,名叫 pi,然後指定它為 Double 型別,並設定它的值為 3.14。

這個例子雖然沒有什麼實質上的應用,但它告訴我們可以透過泛型,來讓一個類別能處理不同的型別物件。

這是泛型的第二種基本應用 - 擴展。讓類別能更有彈性地容納不同的型別。


上一篇
復習 - 泛型(Generic)
下一篇
Project Coin - 改進泛型實作在創建時的型別推論
系列文
實戰 Java SE 7 31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言